<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
  
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

  
  <link href="../css/style.css" rel="stylesheet" type="text/css">

</head>
<body>
<h1>4.4. Директивы объявления данных</h1>
<p class="article">
Практически любая программа кроме машинных команд содержит также какие-то данные. Например, числа, текстовые строчки, идентификаторы, различные ресурсы и т.д. Данные могут быть как константами, не меняющими своё значение во время выполнения программы, так и переменными, в которых хранятся всякие промежуточные результаты.
Прежде всего нужно научиться объявлять данные в программе. Для этого в ассемблере существуют директивы объявления данных.
</p>
<table>
	<tr>
		<td>Размер(в байтах)</td><td>Объявление</td><td>Резервирование</td>
	</tr>
	<tr>
		<td> 1</td><td> db</td><td> rb</td>
	</tr>
	<tr>
		<td> 2</td><td> dw</td><td> rw</td>
	</tr>
	<tr>
		<td> 4</td><td> dd</td><td> rd</td>
	</tr>
	<tr>
		<td> 6</td><td> dp</td><td> rp</td>
	</tr>
	<tr>
		<td> 8</td><td> dq</td><td> rq</td>
	</tr>
	<tr>
		<td> 10</td><td> dt</td><td> rt</td>
	</tr>
	<tr>
		<td> N</td><td> file</td><td> &nbsp;</td>
	</tr>
</table>
<p class="article">
Чтобы объявить байт cо значением 5 достаточно написать:
</p>
<pre class="code">
x db 5	;первый способ
db 5	;второй способ без использования символьной переменной
</pre>
<p class="article">
Иногда в программе требуется объявить массив, то есть несколько переменных одинакового размера, расположенных в памяти друг за другом. Например, чтобы объявить массив из 5 двухбайтных чисел можно написать:
</p>
<pre class="code">
array1 dw 1,2,3,4,5
</pre>
<p class="article">
Строка представляет собой массив байтов-символов и записывается в одинарных кавычках:
</p>
<pre class="code">
str1 db 'Hello$'
</pre>
<div class="notetip">
Для обозначения конца строки используется специальный символ. Обычно это нулевой байт, но для функций DOS используется символ ’$’.
</div>
<p class="article">
file — это особая директива объявления данных, которая позволяет добавить в исполняемый файл последовательность байтов из внешнего файла. Иногда это может быть очень удобно. Например, если вы хотите добавить изображение в исполняемый файл (в виде данных), или большой кусок текста, или даже код из другого файла. Директива используется следующим образом:
</p>
<pre class="code">
data1 file 'data.bin'       ;Добавить файл data.bin целиком.
data2 file 'data.bin':20    ;Добавить байты из файла data.bin, начиная со смещения 20.
data3 file 'data.bin':20,5  ;Добавить 5 байтов из файла data.bin, начиная со смещения 20.
</pre>
</body>
</html>
